package com.edu.chat.web.common.enums;

import lombok.Getter;

/**
 * @program: KQAIA
 * @description:
 * @author: 无恙
 * @create: 2025-03-06 23:10
 **/

@Getter
public enum ResultCodeEnum {
	// 基础状态
	SUCCESS("20000", "操作成功"),
	FAIL("50000", "系统繁忙，请稍后重试"),

	// 客户端错误（4xxxx）
	//异常访问
	REQUEST_NOT_SUPPORTED("40002", "请求异常,不支持处理"),
	PARAM_INVALID("40001", "参数校验失败"),
	ACCESS_DENIED("40003", "访问权限不足"),
	DATA_NOT_FOUND("40004", "请求资源不存在"),
	DUPLICATE_OPERATION("40009", "重复操作警告"),
	FILE_TYPE_UNSUPPORTED("40011", "不支持的文件类型"),
	FILE_SIZE_EXCEEDED("40012", "文件大小超过限制"),
	INVALID_SESSION("40013", "会话已失效"),
	RATE_LIMITED("40029", "请求频率超限"),
	//数据更新失败
	DATA_UPDATE_FAIL("40010", "数据更新失败"),
	//数据异常
	DATA_EXCEPTION("40020", "数据异常"),

	//租户不存在
	TENANT_NOT_EXIST("40030", "租户不存在"),

	// 服务端错误（5xxxx）
	INTERNAL_ERROR("50001", "系统内部异常"),
	TIMEOUT_ERROR("50008", "请求处理超时"),
	DATABASE_ERROR("50010", "数据库操作异常"),
	CACHE_ERROR("50011", "缓存服务异常"),
	CONFIG_ERROR("50012", "系统配置错误"),
	OUT_OF_MEMORY("50013", "系统资源不足"),
	FEATURE_NOT_IMPLEMENTED("50014", "功能未实现"),
	MAINTENANCE_MODE("50015", "系统维护中"),

	// 第三方服务错误（6xxxx）
	THIRD_PARTY_ERROR("60001", "外部服务调用失败"),
	LLM_SERVICE_ERROR("60002", "AI模型服务异常"),
	VECTOR_DB_ERROR("60003", "向量数据库异常"),
	FILE_STORAGE_ERROR("60004", "文件存储服务异常"),
	DOCUMENT_PROCESSING_ERROR("60005", "文档处理失败"),

	// RAG专属错误（7xxxx）
	DOCUMENT_PARSE_ERROR("70001", "文档解析失败"),
	CHUNK_PROCESSING_ERROR("70002", "文本分块处理异常"),
	EMBEDDING_FAILURE("70003", "向量化处理失败"),
	RETRIEVAL_FAILURE("70004", "知识检索失败"),
	GENERATION_FAILURE("70005", "答案生成异常"),
	CONTEXT_OVERFLOW("70006", "上下文长度超限"),
	SOURCE_CITATION_ERROR("70007", "引用来源定位失败"),
	CONTENT_FILTERED("70008", "内容安全校验未通过");


	private final String code;
	private final String msg;

	ResultCodeEnum(String code, String msg) {
		this.code = code;
		this.msg = msg;
	}
}
